package com.banmao.Offer.No05;

/**
 *  Carl思路，自己写的题解
 */
public class Solution2 {

    public String replaceSpace(String s) {

        // 先遍历计算空格数量
        StringBuffer space = new StringBuffer();
        for (char aChar : s.toCharArray()) {
            if(aChar == ' ') {
                // 空格数量乘以2，再加上原数组长度，就是新的数组长度
                space.append(" ").append(" ");
            }
        }

        if(space.length() == 0) {
            return s;
        }

        // 双指针
        int left = s.length() - 1;
        s += space;
        int right = s.length() - 1;

        char[] chars = s.toCharArray();
        while (left >= 0) {

            if(chars[left] != ' ') {
                chars[right] = chars[left];
                left--;
                right--;
                continue;
            }

            chars[right--] = '0';
            chars[right--] = '2';
            chars[right--] = '%';
            left--;

        }
        return String.valueOf(chars);

    }

}
